Skip to main content

winsafe\winusb\handles/
hfile.rs

1#![allow(non_snake_case)]
2
3use crate::decl::*;
4use crate::kernel::privs::*;
5use crate::prelude::*;
6use crate::winusb::ffi;
7
8impl HFILE {
9	/// [`WinUsb_Initialize`](https://learn.microsoft.com/en-us/windows/win32/api/winusb/nf-winusb-winusb_initialize)
10	/// function.
11	#[must_use]
12	pub fn WinUsbInitialize(&self) -> SysResult<WinUsbFreeGuard> {
13		let mut handle = HUSB::NULL;
14		unsafe {
15			BoolRet(ffi::WinUsb_Initialize(self.ptr(), handle.as_mut()))
16				.to_sysresult()
17				.map(|_| WinUsbFreeGuard::new(handle))
18		}
19	}
20}